// pages/wholesale/cate/cate.js
const fetchSev = require("../../utils/util.js").fetchSev;
const getCateUrl = require("../../config.js").getCateUrl; // 品类列表
const getSpuList = require("../../config.js").getSpuList; // 大码列表
const getDepartUrl = require("../../config.js").getDepartUrl; // 部门列表

const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    title: '常/购/推/荐',
    curFilterIdx: 1,

    cateList: [],   // 品类列表
    curCateIdx: 0,  // 品类picker

    departList: [],  // 部门列表
    curDepartIdx: 0,  // 部门picker

    filter: {
      spu_name: '',
      department: '111',  // 精品柜
      cate_id: '',
      metal_id: '',
      craft: '',
      page: 1,
      pagesize: 15
    },

    spuList: [],    // 大码列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    app.globalData.spuFilter.metalId = '';
    app.globalData.spuFilter.craftId = '';
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 数据重置
    this.setData({spuList: []});
    this._updateFilter('page', 1);
    

    this._getCateList();   // 获取品类列表
    this._getDepartList(); // 部门列表

    // 来自大码筛选页面的4个筛选条件
    console.log('spuFilter', app.globalData.spuFilter);
    this._updateFilter('metal_id', app.globalData.spuFilter.metalId || '');
    this._updateFilter('craft', app.globalData.spuFilter.craftId || '');

    this._getSpuList(this.data.filter);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let page = parseInt(this.data.filter.page);
    page = page + 1;
    this._updateFilter('page', page);
    this._getSpuList(this.data.filter);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  },

  // 更新一个筛选条件
  _updateFilter: function(k,v) {
    let filter = this.data.filter;
    filter[k] = v;
    this.setData({filter: filter});
  },

  /**
   * 1-搜索框搜索
   */
  _inputChange: function (e) {
    console.log(e.detail.value);
    let val = e.detail.value;
    this._updateFilter('spu_name', val);
  },
  _searchClick: function () {
    // 重置
    this.setData({ spuList: [] });
    // 获取大码列表
    this._getSpuList(this.data.filter);
  },

  /**
   * 2-部门筛选
   */
  _getDepartList: function() {
    fetchSev(getDepartUrl, "GET", {}, res=>{
      console.log('部门列表', res);
      let arr = res || [];
      this.setData({departList: arr});
      // 默认选中“精品柜”
      arr.map((ele, idx, arr) => {
        if (ele.id == this.data.filter.department) {
          this.setData({curDepartIdx: idx});
        }
      });
    });
  },
  _departChange: function(e) {
    // 先清空大码列表
    this.setData({ spuList: [] });
    // 品类picker显示
    const idx = e.detail.value;
    this.setData({ curDepartIdx: idx });
    // 更新cate_id 和 title
    let id = this.data.departList[idx].id;
    this._updateFilter('department', id);
    // this.setData({ title: this.data.cateList[idx].name.split('').join('/') });
    // 获取大码列表
    this._getSpuList(this.data.filter);
  },

  /**
   * 3-品类（picker）筛选
   */
  _getCateList: function() {
    fetchSev(getCateUrl, 'GET', {}, function(res){      
      const list = res.data || {};
      let arr = [];
      for(let i in list) {
        arr.push(list[i]);
      }
      arr.pop();   // 删除最后一个元素
      // 向开头添加一个“全部”元素
      arr.unshift({id: '', name: '全部品类'});
      this.setData({cateList: arr});
      console.log('品类', this.data.cateList)
    }.bind(this));
  },
  _cateChange: function(e) {
    // 先清空大码列表
    this.setData({spuList: []});
    // 品类picker显示
    const idx = e.detail.value;
    this.setData({ curCateIdx: idx});
    // 更新cate_id 和 title
    let id = this.data.cateList[idx].id;
    this._updateFilter('cate_id', id);
    this.setData({ title: this.data.cateList[idx].name.split('').join('/')});
    // 获取大码列表
    this._getSpuList(this.data.filter);
  },


  /**
   * 4-更多 筛选
   */
  _filterClick: function(e) {
    const idx = e.currentTarget.dataset.index;
    this.setData({curFilterIdx: idx});
    if (idx == 3) {
      wx.navigateTo({
        url: '../cateFilter/cateFilter',
      })
    }
  },


  /**
   * 获取大码列表
   */
  _getSpuList: function (filter) {
    wx.showLoading({
      title: '加载中',
    });
    console.log('filter', filter);
    let arr = this.data.spuList;
    fetchSev(getSpuList, 'GET', filter, function (res) {
      console.log('大码列表', res);
      if (!res || res.length == 0) {
        wx.showToast({
          title: '数据已加载完毕',
          icon: 'none',
          duration: 2000
        });
        return;
      }
      arr = arr.concat(res || []);
      this.setData({spuList: arr});
      wx.hideLoading();
    }.bind(this));
  },

  /**
   * 点击大码，进入大码详情页
   */
  _spuClick: function (e) {
    let currentSpu = e.currentTarget.dataset.item;
    // 添加当前部门id
    currentSpu['department'] = this.data.filter.department;
    app.globalData.currentSpu = currentSpu;
    wx.navigateTo({
      url: '../spuDetail/spuDetail'
    })
  },
  
})